var Pesquisa  = 
{
    arquivo: null,
    options: null,    
    init: function()
    {
        this.bindEvents.init();                
    },
    bindEvents: 
    {
        init: function()
        {
            this.bindPesquisar();  
            this.bindChangeCheckBox();
        },
        bindPesquisar : function()
        {                     
            $("#pesquisaLivroForm").submit(function()
            {                                            
                if(Pesquisa.validation.validFormPesquisa())
                {
                    Pesquisa.actionsEvents.actionPesquisar();                    
                }
                return false;
            })            
        },
        bindChangeCheckBox : function()
        {   
            $("#opt_tipo input[type=checkbox]").change(function()
            {
                if($(this).val() == "todos")
                {
                    $(".other_ck").prop('checked', false);         
                }
                else
                {
                    if($("#opt_tipo input[name=todos]").is(':checked'))
                    {                                               
                        $("#opt_tipo input[name=todos]").prop('checked', false);
                    }                   
                }
            });                        
        }
    },
    actionsEvents:
    {
        actionPesquisar : function()
        {                        
            $.ajax
            ({
                type: "POST",
                url: urlBaseCompoent+'pesquisar',                
                dataType: "json",                
                data:{options: Pesquisa.options },
                beforeSend : function(){ Pesquisa.feedBack.showMSG(true,'')},                
                success: function callback(data) 
                {                                                                                                    
                    Pesquisa.feedBack.hideMSG();
                    
                    data = data.content;
                    
                    if(!data.error.success || data.error.success == 'undefined')
                    {
                        Pesquisa.feedBack.showMSG(false,data.error.description);
                        $("#pesquisaLivroForm").resetForm();
                    }
                    else
                    {
                        Pesquisa.actionsEvents.actionShowResultREF(data.data);                        
                    }
                    return false;
                },
                error: function () 
                {  
                    Pesquisa.feedBack.hideMSG();
                    Pesquisa.feedBack.showMSG(false,'Internal Server erro');
                    return false;
                }

            }); 
        },
        actionShowResultREF: function(arquivos)
        {
            var files = {};
                
            msg = '<div class="word_key"> <u>Resultado(s) para</u>: <b><i class="key_search">'+$("#key").val()+'</i></b></div>'            
            $("#key").val("");
                                    
            msg += '<ol id="files">';
            
            
            for(c = 0; c < arquivos.length; c++)
            {         
                
                files[arquivos[c].id] = arquivos[c];
                  
                
                
                msg += '<li class="file_result">';
                msg += '<p>'
                        //autores
                        msg+='<span>';
                            msg+= Pesquisa.validation.formatName(arquivos[c].autores, arquivos[c].tipo)
                        msg+= "</span>"; 
                        
                        //titulo
                        msg += '<span> ';
                            msg +=arquivos[c].titulo;                                                                             
                        msg+= '.</span>';        
                        
                        
                        
                        if(arquivos[c].tipo == "artigo")
                        {
                            //instituicao_de_ensino
                            msg += '<span> ';
                                msg +=arquivos[c].instituicao_de_ensino;                                                                             
                            msg+= ',</span>';

                            //ano
                            msg += '<span> ';
                                msg +=arquivos[c].ano; 
                            msg+= ',</span>';
                            
                            //local
                            msg += '<span> ';
                            msg +=arquivos[c].local; 
                            msg+= '.</span>';
                        
                        }
                        else
                        {
                            //ano
                            msg += '<span> ';
                                msg +=arquivos[c].ano; 
                            msg+= ',</span>';
                        
                            if (arquivos[c].tipo == "tcc" || arquivos[c].tipo == "tese" || arquivos[c].tipo == "dissertacoes" )
                            {                                                        
                                //instituicao_de_ensino
                                msg += '<span> ';
                                    msg +=arquivos[c].instituicao_de_ensino;                                                                             
                                msg+= '.</span>';

                                //orientador
                                msg += '<span> Orientador: ';
                                msg +=arquivos[c].orientador; 
                                msg+= '.</span>';                                
                            }
                            else
                            {
                                //local
                                msg += '<span> ';
                                msg +=arquivos[c].local; 
                                msg+= '.</span>';                                
                            }
                        }                                                                                               
//                        //tipo
//                        msg += '<span> ';
//                            msg += arquivos[c].tipo; 
//                        msg+= '.</span>';                                                                
                msg += '</p>'
                
                msg+=       '<div class="action_file">\n\
                                <a target="_black" href="'+ urlBase + arquivos[c].url_arquivo+'" >Download</a>';                                
                if(idUser == arquivos[c].id_dono || isSuper)
                {
                msg+=          '<span class="separator"> | </span>\n\
                                <a href="'+arquivos[c].id+'" alt="' + name + '" class="editar" >Editar</a>\n\
                                <span class="separator"> | </span>\n\
                                <a href="'+arquivos[c].id+'" alt="' + name + '" class="deletar" >Deletar</a>'
                }
                
                msg+=       '</div>';                                                
                msg += '</li>';
            }
            
            
            
            msg += '</ol>';
                                                                                 
            Pesquisa.arquivo = files;
            Pesquisa.feedBack.showMSG(false,msg);
            
        }
    },
    validation :
    {
        validFormPesquisa: function()
        {                                 
            var key = $.trim($("#key").val());
            var tipo = $("#tipo").val();
            var tiposArquivos = new Array();;
            
            if(!Tools.isEmpty(key))
            {                                           
                if(!$("#opt_tipo input[name=todos]").is(':checked'))
                {                                    
                    c = 0;
                    $("#opt_tipo input:checked").each(function()
                    {
                        tiposArquivos[c] = $(this).val();
                        c++;
                    });                    
                }
                
                Pesquisa.options = {key : key, tipo : tipo, tiposArquivos: tiposArquivos};                
                return true;
            }
            else
            {
                return false;                
            }                        
        },                
        formatName: function(listAutores, type)
        {
            msg = '';
                               
            if(type == "artigo")
            {                                                             
                for(i = 0; i < listAutores.length; i++)
                {                                                                                                    
                    array_name = listAutores[i].nome.split(" ");
                    
                    msg += array_name[array_name.length-1] + ", ";
                                                                                
                    var c = 0;
                    while(c < array_name.length - 1)
                    {                        
                        msg += array_name[c][0]+". ";
                        c++;    
                    } 
                                                                                                    
                    msg = msg.substring(0,(msg.length - 1));
                    msg += "; ";
                }                   
                
                msg = msg.substring(0,(msg.length - 2));
            }
            else
            {
                
                for(i = 0; i < listAutores.length; i++)
                {                        
                    msg += listAutores[i].nome;

                    if(i < listAutores.length-1)
                    {
                        msg += ", ";
                    }
                }                               
            } 
            
            return msg+=".";
        }
    },
    feedBack :
    {
        hideMSG: function()
        {
            $("#contet_form_pesquisa .feedBack .img_load").hide();
            $("#contet_form_pesquisa .feedBack .msg").hide();            
        },
        showMSG: function(load,msg)
        {
            $("#contet_form_pesquisa .feedBack .msg").html(msg);
            if(load)
            {
                $("#contet_form_pesquisa .feedBack .img_load").show();
                          
            }   
            $("#contet_form_pesquisa .feedBack .msg").show();  
        }
    }
};

var Tools = 
{
    isEmpty: function (inputStr) 
    { 
        if ( null == inputStr || "" == inputStr ) 
        { 
            return true; 
        } 
        return false; 
    },
    date : function()
    {
        console.log((new Date() - new Date())/1000 + "s");
    }
    
}